home *** CD-ROM | disk | FTP | other *** search
- ;------------------------------------------------------------------------------
- ; .ss.
- ; `²²'
- ; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
- ; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
- ; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
- ; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
- ; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
- ; .sS²°$$$²²°"' d²°'
- ; .$$² .$$'
- ; $$$.,d$$'
- ; `²S$$S²'
- ;------------------------------------------------------------------------------
- ; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
- ;------------------------------------------------------------------------------
- ; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
- ;------------------------------------------------------------------------------
-
- Boolean BOOLEAN001
- Boolean BOOLEAN002
- Boolean BOOLEAN003
- Boolean BOOLEAN004
- Boolean BOOLEAN005
- Boolean BOOLEAN006
- Boolean BOOLEAN007
- Boolean BOOLEAN008
- Boolean BOOLEAN009
- Boolean TBOOLEAN010(100)
- Boolean TBOOLEAN011(100)
- Boolean BOOLEAN012
- Boolean BOOLEAN013
- Integer INTEGER001
- Integer INTEGER002
- Integer INTEGER003
- Integer INTEGER004
- Integer INTEGER005
- Integer INTEGER006
- Integer INTEGER007
- Integer INTEGER008
- Integer INTEGER009
- Integer INTEGER010
- Integer INTEGER011
- Integer INTEGER012
- Integer INTEGER013
- Integer INTEGER014
- Integer INTEGER015
- Integer INTEGER016
- Integer INTEGER017
- Integer INTEGER018
- Integer INTEGER019
- Integer INTEGER020
- Integer INTEGER021
- Integer INTEGER022
- Integer INTEGER023
- Integer INTEGER024
- Integer INTEGER025
- Integer INTEGER026
- Integer INTEGER027
- Integer INTEGER028
- Integer INTEGER030
- String STRING001
- String STRING002
- String STRING003
- String STRING004
- String STRING005
- String STRING006
- String STRING007
- String STRING008
- String STRING009
- String STRING010
- String STRING011
- String STRING012
- String STRING013
- String STRING014
- String STRING015
- String STRING016
- String TSTRING017(4)
- String TSTRING018(25)
- String STRING019
- String STRING020
- String STRING021
- String STRING022
- String STRING023
- String TSTRING024(100)
- String TSTRING025(100)
- String TSTRING026(100)
- String TSTRING027(100)
- String TSTRING028(100)
- String TSTRING029(200)
- String TSTRING030(100)
- String TSTRING031(100)
- String TSTRING032(100)
- String TSTRING033(100)
- String STRING034
- String STRING036
- Declare Function FUNCTION001(String STRING035, Boolean BOOLEAN014) String
- Declare Function FUNCTION002(Integer INTEGER029) Integer
-
- ;------------------------------------------------------------------------------
-
- STRING001 = "-------------------------------------------------------------"
- STRING001 = "■ Atlantis ■ Copyright (c) 1996-1997 Jolly Roger ■ Atlantis ■"
- STRING001 = "-------------------------------------------------------------"
- STRING001 = "I'd like to thank you for your interest in this masterpiece! "
- STRING001 = "You may not modify this source code because that's illegal! "
- STRING001 = "Don't be lame - don't change my name! "
- STRING001 = " - Jolly Roger - "
- STRING001 = "-------------------------------------------------------------"
- GetUser
- RdUNet PcbNode()
- STRING012 = UN_Stat()
- WrUNet PcbNode(), UN_Stat(), U_Name(), U_City, "Currently in menu. Atlantis v1.0", ""
- STRING003 = PcbNode()
- INTEGER015 = 0
- INTEGER028 = 0
- If (AnsiOn() == 0) Then
- Call PPEPath() + "ASCii\ASCii.PPE"
- End
- Endif
- StartDisp 1
- If (U_Expert == 1) Then
- BOOLEAN001 = 1
- BOOLEAN002 = 1
- Endif
- Gosub LABEL013
- Gosub LABEL012
- If (BOOLEAN001 == 1) Goto LABEL007
- :LABEL001
- Newline
- PrintLn "@X01■ @X09ATLANTIS v1.0 @X01■@X09 Written By@X01:@X09 Jolly Roger / PiNNACLE '97@X01■@X07"
- Gosub LABEL017
- If (BOOLEAN013 == 1) Gosub LABEL020
- INTEGER025 = FUNCTION002(Sec(Time()))
- BOOLEAN009 = 1
- If (INTEGER006 == 0) INTEGER006 = 1
- :LABEL002
- STRING009 = ""
- StartDisp 1
- DispFile STRING010 + STRING011 + ".PCB", 0
- Gosub LABEL016
- If (BOOLEAN004 == 1) Then
- AnsiPos INTEGER016, INTEGER017
- Print STRING013 + "@TIMELEFT@"
- Endif
- If (BOOLEAN005 == 1) Then
- AnsiPos INTEGER018, INTEGER019
- Print STRING015 + "@CONFNAME@"
- Endif
- AnsiPos INTEGER011, INTEGER012
- Print STRING014 + Space(INTEGER004)
- AnsiPos INTEGER011, INTEGER012
- Print STRING014 + TSTRING026(INTEGER006)
- AnsiPos TSTRING027(INTEGER006), TSTRING028(INTEGER006)
- BOOLEAN003 = 1
- :LABEL003
- STRING002 = FUNCTION001("", 1)
- Select Case (Upper(STRING002))
- Case "UP"
- Gosub LABEL024
- If (TSTRING030(INTEGER006) <> 0) INTEGER006 = TSTRING030(INTEGER006)
- Gosub LABEL025
- Case "DOWN"
- Gosub LABEL024
- If (TSTRING031(INTEGER006) <> 0) INTEGER006 = TSTRING031(INTEGER006)
- Gosub LABEL025
- Case "LEFT"
- Gosub LABEL024
- If (TSTRING032(INTEGER006) <> 0) INTEGER006 = TSTRING032(INTEGER006)
- Gosub LABEL025
- Case "RIGHT"
- Gosub LABEL024
- If (TSTRING033(INTEGER006) <> 0) INTEGER006 = TSTRING033(INTEGER006)
- Gosub LABEL025
- If ((((Upper(STRING002) == "HOME") || (Upper(STRING002) == "END")) || (Upper(STRING002) == "INS")) || (Upper(STRING002) == "DEL")) Then
- Goto LABEL006
- Endif
- Case "PGUP"
- If (INTEGER015 == 0) INTEGER015 = INTEGER028 + 1
- If (INTEGER015 > 1) Then
- Dec INTEGER015
- AnsiPos INTEGER011, INTEGER012
- If (BOOLEAN003 == 0) Then
- Print STRING014 + Space(Len(STRING009))
- Goto LABEL004
- Endif
- Print STRING014 + Space(Len(TSTRING026(INTEGER006)))
- :LABEL004
- STRING009 = ""
- AnsiPos INTEGER011, INTEGER012
- KbdStuff TSTRING018(INTEGER015)
- Endif
- Case "PGDN"
- If (INTEGER015 == 0) INTEGER015 = 1
- If (INTEGER015 < INTEGER028) Then
- Inc INTEGER015
- AnsiPos INTEGER011, INTEGER012
- If (BOOLEAN003 == 0) Then
- Print STRING014 + Space(Len(STRING009))
- Goto LABEL005
- Endif
- Print STRING014 + Space(Len(TSTRING026(INTEGER006)))
- :LABEL005
- STRING009 = ""
- AnsiPos INTEGER011, INTEGER012
- KbdStuff TSTRING018(INTEGER015)
- Endif
- Case Chr(13)
- If (BOOLEAN003 == 1) STRING009 = TSTRING026(INTEGER006)
- If (Trim(STRING009, " ") == "") Then
- Backup Len(STRING009)
- STRING009 = ""
- Else
- ResetDisp
- Color 7
- Cls
- Gosub LABEL014
- If (BOOLEAN003 == 1) Then
- If (TBOOLEAN011(INTEGER006) == 1) Then
- Newline
- Wait
- Endif
- Else
- Newline
- Endif
- STRING009 = ""
- If (U_Expert == 1) Then
- BOOLEAN002 = 1
- Goto LABEL007
- Endif
- Goto LABEL002
- Endif
- Case Chr(27)
- AnsiPos INTEGER011, INTEGER012
- If (BOOLEAN003 == 0) Then
- Print STRING014 + Space(Len(STRING009))
- Else
- Print STRING014 + Space(Len(TSTRING026(INTEGER006)))
- Endif
- STRING009 = ""
- AnsiPos INTEGER011, INTEGER012
- Case Chr(8)
- If (BOOLEAN003 == 1) Then
- BOOLEAN003 = 0
- STRING009 = TSTRING026(INTEGER006)
- If (Len(STRING009) > 0) Then
- STRING009 = Left(STRING009, Len(STRING009) - 1)
- AnsiPos INTEGER011 + Len(STRING009), INTEGER012
- Print STRING014 + " "
- AnsiPos INTEGER011 + Len(STRING009), INTEGER012
- Endif
- ElseIf (Len((STRING009 > 0))) Then
- STRING009 = Left(STRING009, Len(STRING009) - 1)
- AnsiPos INTEGER011 + Len(STRING009), INTEGER012
- Print STRING014 + Space(1)
- AnsiPos INTEGER011 + Len(STRING009), INTEGER012
- Endif
- Case 1
- STRING009 = TSTRING026(INTEGER006)
- AnsiPos INTEGER011, INTEGER012
- Print STRING014 + Space(Len(STRING009))
- AnsiPos INTEGER011, INTEGER012
- Print STRING014 + STRING002
- STRING009 = STRING002
- BOOLEAN003 = 0
- Case INTEGER004
- STRING009 = STRING009 + STRING002
- Print STRING014 + STRING002
- Case Else
- Beep
- End Select
- :LABEL006
- Goto LABEL003
- End
- :LABEL007
- If (STRING008 <> "") Then
- PrintLn STRING007
- Print STRING008
- Else
- Print STRING007
- Endif
- :LABEL008
- STRING006 = ""
- INTEGER009 = GetY()
- INTEGER010 = GetX()
- AnsiPos INTEGER010, INTEGER009
- :LABEL009
- INTEGER025 = 0
- STRING002 = FUNCTION001("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+|1234567890-=\][{};':/.,<>? " + Chr(13) + Chr(8) + Chr(27) + Chr(34), 1)
- If (STRING002 <> Chr(13)) Then
- If (STRING002 == Chr(27)) Then
- AnsiPos INTEGER010, INTEGER009
- Print STRING014 + Space(Len(STRING006))
- Goto LABEL008
- Endif
- If (STRING002 == Chr(8)) Then
- If (Len((STRING006 > 0))) Then
- STRING006 = Left(STRING006, Len(STRING006) - 1)
- AnsiPos INTEGER010 + Len(STRING006), INTEGER009
- Print " "
- AnsiPos INTEGER010 + Len(STRING006), INTEGER009
- Endif
- Goto LABEL009
- Endif
- If (STRING002 == "LEFT") Then
- If (Len((STRING006 > 0))) Then
- STRING006 = Left(STRING006, Len(STRING006) - 1)
- AnsiPos INTEGER010 + Len(STRING006), INTEGER009
- Print " "
- AnsiPos INTEGER010 + Len(STRING006), INTEGER009
- Endif
- Goto LABEL009
- Endif
- If (Len(STRING006) < INTEGER003) Then
- If (STRING002 == "RIGHT") STRING002 = " "
- If (STRING002 == "UP") STRING002 = ""
- If (STRING002 == "DOWN") STRING002 = ""
- If (STRING002 == "RIGHT") STRING002 = ""
- STRING006 = STRING006 + STRING002
- Print STRING014 + STRING002
- Goto LABEL009
- Goto LABEL010
- Endif
- Beep
- Goto LABEL009
- Endif
- :LABEL010
- STRING006 = Trim(STRING006, " ")
- If (Len(STRING006) == 0) Then
- Newlines 2
- Goto LABEL007
- Endif
- STRING009 = STRING006
- Gosub LABEL014
- If (U_Expert == 0) Then
- If (BOOLEAN001 == 1) Then
- BOOLEAN001 = 0
- Goto LABEL001
- Goto LABEL011
- Endif
- BOOLEAN002 = 0
- Goto LABEL002
- Endif
- :LABEL011
- Goto LABEL007
- :LABEL012
- STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 1)
- STRING004 = Mid(STRING004, 16, 5)
- Tokenize STRING004
- If (GetToken() == "NO") Then
- INTEGER001 = GetToken()
- Else
- INTEGER001 = Random(GetToken())
- If (INTEGER001 == 0) INTEGER001 = 1
- Endif
- STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 2)
- INTEGER002 = Mid(STRING004, 15, 4)
- STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 3)
- STRING005 = Trim(Mid(STRING004, 15, 10), " ")
- STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 4)
- STRING007 = Mid(STRING004, 16, Len(STRING004) - 15)
- STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 5)
- STRING008 = Mid(STRING004, 16, Len(STRING004) - 15)
- STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 6)
- INTEGER003 = Mid(STRING004, 17, 2)
- STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 7)
- If (Upper(Mid(STRING004, 9, Len(STRING004) - 8)) == "YES") BOOLEAN013 = 1
- STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 8)
- INTEGER026 = Mid(STRING004, 14, 2)
- STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 9)
- STRING021 = "@X" + Mid(STRING004, 13, 2)
- Return
- :LABEL013
- If (Exist(PPEPath() + "Atlantis.CFG") == 0) Then
- PrintLn "@X08■ @X0CAtlantis v1.0 An error has occured @X08■"
- Newline
- PrintLn "@X08■ @X07The file : @X0F" + Upper(PPEPath()) + "Atlantis.CFG @X07is missing."
- Newline
- Wait
- End
- Endif
- If (Exist(PPEPath() + "Sysop\Sysop.PPE") == 0) Then
- PrintLn "@X08■ @X0CAtlantis v1.0 An error has occured @X08■"
- Newline
- PrintLn "@X08■ @X07The file : @X0F" + Upper(PPEPath()) + "SYSOP\Sysop.PPE @X07is missing."
- Newline
- Wait
- End
- Endif
- Return
- :LABEL014
- INTEGER015 = 0
- STRING009 = Trim(STRING009, " ")
- Tokenize STRING009
- Select Case (Upper(STRING009))
- Case ""
- Return
- Case "?", "MENU"
- If (INTEGER028 < 25) Then
- Inc INTEGER028
- TSTRING018(INTEGER028) = STRING009
- Else
- For INTEGER001 = 2 To 25
- TSTRING018(INTEGER001 - 1) = TSTRING018(INTEGER001)
- Next
- TSTRING018(25) = STRING009
- Endif
- If (BOOLEAN002 == 1) Then
- If (BOOLEAN001 == 1) Then
- BOOLEAN001 = 0
- Goto LABEL001
- Goto LABEL015
- Endif
- Goto LABEL002
- Endif
- :LABEL015
- If (STRING009 == "?") Then
- Newlines 2
- ResetDisp
- Command 1, STRING009
- StartDisp 1
- Else
- BOOLEAN003 = 1
- Endif
- Case "SYSOP"
- If (INTEGER028 < 25) Then
- Inc INTEGER028
- TSTRING018(INTEGER028) = STRING009
- Else
- For INTEGER001 = 2 To 25
- TSTRING018(INTEGER001 - 1) = TSTRING018(INTEGER001)
- Next
- TSTRING018(25) = STRING009
- Endif
- If (U_Sec >= INTEGER002) Then
- Color 7
- Cls
- PrintLn "@X07┌───────────────────────────────────────────────────────────────────────────┐"
- PrintLn "@X07│ @X0FSysop Password @X08:@X0F @X07│"
- PrintLn "@X07└───────────────────────────────────────────────────────────────────────────┘"
- AnsiPos 21, 2
- STRING004 = ""
- InputStr "_", STRING004, "@X0F", 30, Mask_Pwd(), 0 + 1
- If (Upper(STRING004) <> Upper(STRING005)) Then
- Log "[ATLANTiS] - WARNING: Wrong Sysop Password : " + Upper(STRING004), 0
- Newlines 2
- Return
- Endif
- ResetDisp
- Call PPEPath() + "Sysop\Sysop.PPE"
- StartDisp 1
- BOOLEAN009 = 1
- Else
- ResetDisp
- Command 1, "SYSOP"
- StartDisp 1
- BOOLEAN009 = 1
- Endif
- Case Else
- If (INTEGER028 < 25) Then
- Inc INTEGER028
- TSTRING018(INTEGER028) = STRING009
- Else
- For INTEGER001 = 2 To 25
- TSTRING018(INTEGER001 - 1) = TSTRING018(INTEGER001)
- Next
- TSTRING018(25) = STRING009
- Endif
- Newlines 2
- ResetDisp
- Command 1, STRING009
- If (BOOLEAN003 == 1) Then
- If (TBOOLEAN010(INTEGER006) == 1) KbdFlush
- Else
- STRING020 = ""
- STRING020 = Inkey()
- If (STRING020 <> "") Then
- STRING004 = Inkey()
- While (STRING004 <> "") Do
- STRING020 = STRING020 + STRING004
- STRING004 = Inkey()
- EndWhile
- Endif
- If (STRING020 == Chr(13)) STRING020 = ""
- If (STRING020 <> "") Then
- KbdFlush
- KbdStuff STRING020
- STRING020 = ""
- STRING004 = ""
- Else
- Wait
- Endif
- Endif
- StartDisp 1
- BOOLEAN009 = 1
- End Select
- INTEGER015 = 0
- GetUser
- RdUNet PcbNode()
- STRING012 = UN_Stat()
- Return
- :LABEL016
- For INTEGER014 = 1 To INTEGER007
- AnsiPos TSTRING027(INTEGER014), TSTRING028(INTEGER014)
- If (INTEGER014 == INTEGER006) Then
- Print TSTRING025(INTEGER014)
- Continue
- Endif
- Print TSTRING024(INTEGER014)
- Next
- Return
- :LABEL017
- STRING010 = PPEPath() + "Config" + String(INTEGER001) + "\"
- If (Exist(STRING010 + "Menu-" + String(U_Sec) + ".PCB") == 0) Then
- STRING011 = "Menu-All"
- Else
- STRING011 = "Menu-" + String(U_Sec)
- Endif
- If (Exist(STRING010 + STRING011 + ".PCB") == 0) Then
- PrintLn "@X08■ @X0CAtlantis v1.0 An error has occured @X08■"
- Newline
- PrintLn "@X08■ @X07The file : @X0F" + STRING010 + STRING011 + ".PCB @X07is missing."
- Newline
- Wait
- End
- Endif
- If (Exist(STRING010 + STRING011 + ".CFG") == 0) Then
- PrintLn "@X08■ @X0CAtlantis v1.0 An error has occured @X08■"
- Newline
- PrintLn "@X08■ @X07The file : @X0F" + STRING010 + STRING011 + ".CFG @X07is missing."
- Newline
- Wait
- End
- Endif
- FOpen 1, STRING010 + STRING011 + ".CFG", 0, 2
- :LABEL018
- FGet 1, STRING004
- If (Left(STRING004, 1) <> ";") Then
- If (InStr(STRING004, "=") > 0) Then
- If (Upper(STRING004) == "MENUCONFIG=") BOOLEAN006 = 1
- If (Upper(STRING004) == "BEGINITEM=") BOOLEAN007 = 1
- If (Upper(STRING004) == "NEXTITEM=") BOOLEAN007 = 1
- If (Upper(STRING004) == "ENDITEM=") BOOLEAN008 = 1
- If (BOOLEAN006 == 1) Then
- FGet 1, STRING004
- INTEGER011 = Mid(STRING004, 15, Len(STRING004) - 14)
- FGet 1, STRING004
- INTEGER012 = Mid(STRING004, 15, Len(STRING004) - 14)
- FGet 1, STRING004
- If (Upper(Mid(STRING004, 20, Len(STRING004) - 19)) == "YES") BOOLEAN005 = 1
- FGet 1, STRING004
- INTEGER018 = Mid(STRING004, 14, Len(STRING004) - 13)
- FGet 1, STRING004
- INTEGER019 = Mid(STRING004, 14, Len(STRING004) - 13)
- FGet 1, STRING004
- STRING015 = Mid(STRING004, 18, Len(STRING004) - 17)
- FGet 1, STRING004
- If (Upper(Mid(STRING004, 18, Len(STRING004) - 17)) == "YES") BOOLEAN004 = 1
- FGet 1, STRING004
- INTEGER016 = Mid(STRING004, 12, Len(STRING004) - 11)
- FGet 1, STRING004
- INTEGER017 = Mid(STRING004, 12, Len(STRING004) - 11)
- FGet 1, STRING004
- STRING013 = Mid(STRING004, 16, Len(STRING004) - 15)
- FGet 1, STRING004
- INTEGER006 = Mid(STRING004, 23, Len(STRING004) - 22)
- FGet 1, STRING004
- INTEGER004 = Mid(STRING004, 19, Len(STRING004) - 18)
- FGet 1, STRING004
- STRING014 = "@X" + Mid(STRING004, 19, 2)
- FGet 1, STRING004
- INTEGER021 = Mid(STRING004, 11, Len(STRING004) - 10)
- BOOLEAN006 = 0
- Goto LABEL019
- Endif
- If (BOOLEAN007 == 1) Then
- Inc INTEGER007
- FGet 1, STRING004
- INTEGER013 = Mid(STRING004, 17, Len(STRING004) - 16)
- FGet 1, STRING004
- TSTRING024(INTEGER013) = Mid(STRING004, 9, Len(STRING004) - 8)
- FGet 1, STRING004
- TSTRING025(INTEGER013) = Mid(STRING004, 14, Len(STRING004) - 13)
- FGet 1, STRING004
- TSTRING027(INTEGER013) = Mid(STRING004, 8, Len(STRING004) - 7)
- FGet 1, STRING004
- TSTRING028(INTEGER013) = Mid(STRING004, 8, Len(STRING004) - 7)
- FGet 1, STRING004
- TSTRING030(INTEGER013) = Mid(STRING004, 5, Len(STRING004) - 4)
- FGet 1, STRING004
- TSTRING031(INTEGER013) = Mid(STRING004, 7, Len(STRING004) - 6)
- FGet 1, STRING004
- TSTRING032(INTEGER013) = Mid(STRING004, 7, Len(STRING004) - 6)
- FGet 1, STRING004
- TSTRING033(INTEGER013) = Mid(STRING004, 8, Len(STRING004) - 7)
- FGet 1, STRING004
- TSTRING026(INTEGER013) = Mid(STRING004, 10, Len(STRING004) - 9)
- FGet 1, STRING004
- If (Upper(Mid(STRING004, 14, Len(STRING004) - 13)) == "YES") TBOOLEAN011(INTEGER013) = 1
- FGet 1, STRING004
- If (Upper(Mid(STRING004, 16, Len(STRING004) - 15)) == "YES") TBOOLEAN010(INTEGER013) = 1
- BOOLEAN007 = 0
- Endif
- Endif
- Endif
- :LABEL019
- If (BOOLEAN008 == 0) Goto LABEL018
- FClose 1
- Return
- :LABEL020
- If (Exist(PPEPath() + "Rumour\Rumour.DAT") == 1) Then
- FOpen 1, PPEPath() + "Rumour\Rumour.DAT", 2, 0
- FGet 1, INTEGER008
- For INTEGER014 = 1 To INTEGER008
- FGet 1, STRING004
- TSTRING029(INTEGER014) = STRING004
- If (INTEGER014 == 200) Break
- FGet 1, STRING004
- Next
- INTEGER014 = Random(INTEGER008)
- STRING016 = TSTRING029(INTEGER014)
- FClose 1
- Else
- TSTRING029(1) = "@X09■ Atlantis v1.0 ■ @X0FCan't Find Rumourbase @X09■@X07"
- INTEGER008 = 1
- STRING016 = TSTRING029(1)
- Endif
- For INTEGER014 = 1 To INTEGER008
- If (InStr(TSTRING029(INTEGER014), "@CITY@") > 1) TSTRING029(INTEGER014) = ReplaceStr(TSTRING029(INTEGER014), "@CITY@", U_City)
- If (InStr(TSTRING029(INTEGER014), "@USER@") > 1) TSTRING029(INTEGER014) = ReplaceStr(TSTRING029(INTEGER014), "@USER@", U_Name())
- Next
- Return
- End
-
- ;------------------------------------------------------------------------------
-
- Function FUNCTION001(String STRING035, Boolean BOOLEAN014) String
-
- Integer INTEGER029
-
- BOOLEAN012 = 0
- If (STRING035 <> "") BOOLEAN012 = 1
- :LABEL021
- STRING034 = ""
- While (STRING034 == "") Do
- STRING034 = Inkey()
- INTEGER024 = Sec(Time())
- RdUNet PcbNode()
- If (UN_Stat() == "M") Then
- STRING001 = "-------------------------------------------------------"
- STRING001 = " Multinode-Broadcast-Messaging-System v1.0 (MBMS) "
- STRING001 = " Copyright (c) 1997 - Jolly Roger. All Rights Reserved "
- STRING001 = "-------------------------------------------------------"
- FOpen 0, ReadLine(PCBDat(), 41), 0, 0
- INTEGER005 = (PcbNode() - 1) * 189 + 136
- FSeek 0, INTEGER005, 0
- FRead 0, STRING022, 64
- STRING022 = Strip(STRING022, Chr(0))
- If (STRING022 <> "") Then
- INTEGER022 = GetX()
- INTEGER023 = GetY()
- Beep
- TSTRING017(1) = ScrText(1, 1, 79, 1)
- TSTRING017(2) = ScrText(1, 2, 79, 1)
- TSTRING017(3) = ScrText(1, 3, 79, 1)
- TSTRING017(4) = ScrText(1, 4, 79, 1)
- AnsiPos 1, 1
- PrintLn "@X08┌[@X07'@X0FBROADCAST@X07'ed message received, Press @X0FENTER @X07to continue@X08]────────────────────┐"
- PrintLn "│ │"
- PrintLn "│ @X07Message: @X08│"
- Print "└─────────────────────────────────────────────────────────────────────────────┘"
- AnsiPos 12, 3
- Color 9
- Print STRING014 + STRING022
- KbdFlush
- While (STRING023 <> Chr(13)) Do
- STRING023 = Inkey()
- EndWhile
- AnsiPos 1, 1
- Print TSTRING017(1)
- AnsiPos 1, 2
- Print TSTRING017(2)
- AnsiPos 1, 3
- Print TSTRING017(3)
- AnsiPos 1, 4
- Print TSTRING017(4)
- AnsiPos INTEGER022, INTEGER023
- Endif
- FClose 0
- WrUNet PcbNode(), STRING012, U_Name(), U_City, "Currently in menu. Atlantis v1.0", ""
- Endif
- If (INTEGER024 == INTEGER025) BOOLEAN009 = 1
- If (U_Expert == 0) Then
- If (BOOLEAN013 == 1) Then
- If (BOOLEAN009 == 1) Then
- INTEGER022 = GetX()
- INTEGER023 = GetY()
- STRING019 = STRING016
- If (INTEGER008 <> 1) Then
- While (STRING019 == STRING016) Do
- INTEGER014 = Random(INTEGER008)
- If (INTEGER014 == 0) INTEGER014 = 1
- STRING016 = TSTRING029(INTEGER014)
- EndWhile
- Goto LABEL022
- Endif
- STRING016 = TSTRING029(1)
- :LABEL022
- If (INTEGER020 <> 0) Then
- AnsiPos INTEGER020, INTEGER021
- Print Space(Len(STRING019))
- Endif
- INTEGER014 = Len(StripAtx(STRING016))
- INTEGER020 = ToInt(String(41 - INTEGER014 / 2))
- AnsiPos INTEGER020, INTEGER021
- Print STRING021 + STRING016
- INTEGER025 = FUNCTION002(INTEGER024)
- AnsiPos INTEGER022, INTEGER023
- BOOLEAN009 = 0
- Endif
- Endif
- Endif
- EndWhile
- If (STRING034 == "BADKEY") Goto LABEL021
- If (BOOLEAN012 == 1) Then
- If (InStr(STRING035, STRING034) == 0) Then
- If (BOOLEAN014 == 1) Then
- If (STRING034 == "UP") Goto LABEL023
- If (STRING034 == "DOWN") Goto LABEL023
- If (STRING034 == "LEFT") Goto LABEL023
- If (STRING034 == "RIGHT") Goto LABEL023
- Endif
- Goto LABEL021
- Endif
- Endif
- If (BOOLEAN014 == 0) Then
- If (STRING034 == "UP") Goto LABEL021
- If (STRING034 == "DOWN") Goto LABEL021
- If (STRING034 == "LEFT") Goto LABEL021
- If (STRING034 == "RIGHT") Goto LABEL021
- Endif
- :LABEL023
- FUNCTION001 = STRING034
-
- EndFunc
-
-
- ;------------------------------------------------------------------------------
-
- Function FUNCTION002(Integer INTEGER029) Integer
-
- If (INTEGER029 + INTEGER026 > 60) Then
- INTEGER027 = INTEGER026 - 60 - INTEGER029
- FUNCTION002 = INTEGER027
- Else
- FUNCTION002 = INTEGER029 + INTEGER026
- Endif
- If (FUNCTION002 == 60) FUNCTION002 = 0
-
- EndFunc
-
- :LABEL024
- AnsiPos TSTRING027(INTEGER006), TSTRING028(INTEGER006)
- Print TSTRING024(INTEGER006)
- AnsiPos INTEGER011, INTEGER012
- If (BOOLEAN003 == 1) Then
- Print STRING014 + Space(Len(TSTRING026(INTEGER006)))
- Else
- Print STRING014 + Space(Len(STRING009))
- Endif
- Return
- :LABEL025
- AnsiPos TSTRING027(INTEGER006), TSTRING028(INTEGER006)
- Print TSTRING025(INTEGER006)
- AnsiPos INTEGER011, INTEGER012
- Print STRING014 + TSTRING026(INTEGER006)
- AnsiPos TSTRING027(INTEGER006), TSTRING028(INTEGER006)
- BOOLEAN003 = 1
- Return
- STRING001 = "-------------------------------------------------------------"
- STRING001 = "■ Atlantis ■ Copyright (c) 1995-1996 Jolly Roger ■ Atlantis ■"
- STRING001 = "-------------------------------------------------------------"
-
- ;------------------------------------------------------------------------------
- ;
- ; Usage report (before postprocessing)
- ;
- ; ■ Statements used :
- ;
- ; 7 End
- ; 2 Cls
- ; 6 Wait
- ; 3 Color
- ; 166 Goto
- ; 199 Let
- ; 36 Print
- ; 16 PrintLn
- ; 131 If
- ; 1 DispFile
- ; 3 FOpen
- ; 3 FClose
- ; 30 FGet
- ; 5 ResetDisp
- ; 6 StartDisp
- ; 2 GetUser
- ; 1 Log
- ; 1 InputStr
- ; 15 Gosub
- ; 10 Return
- ; 5 Inc
- ; 1 Dec
- ; 11 Newline
- ; 4 Newlines
- ; 2 Tokenize
- ; 3 Beep
- ; 3 KbdStuff
- ; 2 Call
- ; 3 RdUNet
- ; 2 WrUNet
- ; 40 AnsiPos
- ; 1 Backup
- ; 1 FSeek
- ; 1 FRead
- ; 3 KbdFlush
- ; 2 EndFunc
- ; 3 Command
- ;
- ;
- ; ■ Functions used :
- ;
- ; 1 *
- ; 1 /
- ; 91 +
- ; 39 -
- ; 97 ==
- ; 16 <>
- ; 12 <
- ; 6 <=
- ; 9 >
- ; 13 >=
- ; 88 !
- ; 12 &&
- ; 10 ||
- ; 60 Len(
- ; 31 Upper()
- ; 35 Mid()
- ; 5 Left()
- ; 13 Space()
- ; 13 Chr()
- ; 4 InStr()
- ; 4 Trim()
- ; 3 Random()
- ; 2 Time()
- ; 3 U_Name()
- ; 2 Sec()
- ; 1 StripAtx()
- ; 1 Strip()
- ; 5 Inkey()
- ; 4 String()
- ; 1 Mask_Pwd()
- ; 1 PCBDat()
- ; 18 PPEPath()
- ; 7 PcbNode()
- ; 10 ReadLine()
- ; 4 UN_Stat()
- ; 3 GetToken()
- ; 6 Exist()
- ; 1 AnsiOn()
- ; 3 GetX()
- ; 3 GetY()
- ; 4 ScrText()
- ; 2 ReplaceStr()
- ; 1 ToInt()
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Analysis flags : Cd
- ;
- ; C - Call child PPE ■ 3
- ; This is usually normal, but may be a tricky way to launch some
- ; sysop-only commands.
- ; ■ Search for : CALL
- ;
- ; d - Access PCBOARD.DAT ■ 2
- ; Program gets the full pathname to PCBOARD.DAT, this may be usefull
- ; for many PPE so they can find various informations on the system
- ; (system paths, max number of lines in messages, ...) but it may also
- ; be a way to gather vital informations.
- ; ■ Search for : PCBDAT()
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Postprocessing report
- ;
- ; 6 For/Next
- ; 4 While/EndWhile
- ; 64 If/Then or If/Then/Else
- ; 2 Select Case
- ;
- ;------------------------------------------------------------------------------
- ; AEGiS Corp - Break the routines, code against the machines!
- ;------------------------------------------------------------------------------
-